package br.uniriotec.pm.dao.textFile;

import java.util.ArrayList;
import java.util.List;

import br.uniriotec.pm.dao.DAOVendedor;
import br.uniriotec.pm.dao.textFile.exception.TextFileAccessException;
import br.uniriotec.pm.domain.Vendedor;

public class TextFileDAOVendedor extends TextFileDAO implements DAOVendedor{

	public TextFileDAOVendedor() {
		super();
	}

	public TextFileDAOVendedor(String caminhoArquivoTexto) throws TextFileAccessException {
		super(caminhoArquivoTexto);
	}

	@Override
	public List<Vendedor> carregarListaVendedores() {
		List<Vendedor> listaVendedores = new ArrayList<Vendedor>();
		
		abrirLeituraArquivo();
		
		String linha = lerProximaLinha();
		
		while (linha != null) {
			Vendedor vendedor = carregarVendedor(dividirLinha(linha));
			listaVendedores.add(vendedor);
			
			linha = lerProximaLinha();
		}
		
		fecharLeituraArquivo();
		
		return listaVendedores;
	}

	private Vendedor carregarVendedor(String[] tokensLinha) {
		if (tokensLinha.length < 3) {
			return null;
		}
		
		Long codigo = Long.valueOf(tokensLinha[0]);
		String nome = tokensLinha[1];
		Integer categoria = Integer.valueOf(tokensLinha[2]);
		
		Vendedor vendedor = new Vendedor(codigo, nome, categoria);
		
		return vendedor;
	}
}
